Computers have displays with which users interact. The displays generally have visual affordances like buttons, links, or other user interface (UI) controls. These visual affordances are an important usability aid in any user interface. Without the visual affordances, the user may not know what interactions are possible or how to use the device. Thus, displays tend to present UI elements in a persistent manner. However, there are situations where showing persistent UI “chrome” (e.g., buttons, icons) is undesirable. For example, all of the real estate available on the display of a device may be desired for displaying content, particularly for smaller devices (e.g., smart phones).
Conventional approaches attempt to address the issue of limited screen space being consumed by persistent UI chrome by temporarily suppressing the UI elements when the system determines that the elements are not needed. Conventional approaches may selectively surface the UI elements when the system determines that the elements may be needed. For example, the system may accept a user input (e.g., swipe gesture from left side of screen to right side of screen) to surface the UI elements. These recall interactions are slow and may require the user to learn an abstract and hidden interaction just to reveal the UI elements.
Some conventional systems interpret some intuitive user actions as being a request to display a UI element. For example, when a user is watching a video on a smart phone, if the smart phone detects a touch on the screen, the video application, operating system, application, or smart phone may surface DVR-like controls for controlling the application. When the user touches the screen on which the movie is playing the user may be presented with buttons including start, stop, skip back, and skip forward. While these “interact with the screen” interfaces are an improvement over abstract or hidden interactions, the user/device interaction tends to be a single-step interaction having a small finite set of possibilities that present a fixed single level of user interface elements.